﻿using System;

namespace Rosetta
{
    public interface IReturns : IAddIn
    {
        #region Properties

        /// <summary>
        /// Returns all distinct types this AddIn returns.
        /// </summary>
        [NotNull]
        Type[] ReturnTypes { get; }

        #endregion

        #region Methods

        [NotNull]
        IMethodEntry[] GetMethodsByReturnType([NotNull] Type returnType);

        [NotNull]
        IMethodEntry[] GetMethodsByReturnTypes([NotNull] Type[] returnTypes);

        #endregion
    }
}